/*
 * 增删改查核心Dao层
*/
const db = require('../datasource/DBConnection');

module.exports = {
    /**
     * 所有的数据库增删改查操作
     * 通过传递的sql和条件完成数据库操作，比如：<br/>
     * sql = 'select id,username,last_login_time from user where username=? and password=?'<br/>
     * where = ['thinknovo','123456']
     *
     * @param sql                 操作的sql
     * @param where               添加的条件(注意：条件以数组的形态传递)
     * @returns                   返回操作的结果
     */
    handleData(sql, where){
        console.log('BaseDao time=' + new Date());
        console.log('BaseDao:sql=' + sql);
        console.log('BaseDao:where=' + where);
        return new Promise(resolve => {
            db.db(sql, where, function (err,data) {
                // 如果执行数据库操作没有出错，则返回正常数据，否则返回错误信息
                if(!err)
                    resolve({code:200,data:data});
                else {
                    console.log(err);
                    resolve({code:500,msg:err});
                }
            });
        });
    },
    handleDataTransaction(sql, whereArray){
        console.log('BaseDao Transaction:time=' + new Date());
        console.log('BaseDao Transaction:sql=' + sql);
        console.log('BaseDao Transaction:whereArray=' + whereArray);
        return new Promise(resolve => {
            db.dbTransaction(sql, whereArray, function (err,data) {
                // 如果执行数据库操作没有出错，则返回正常数据，否则返回错误信息
                if(!err)
                    resolve({code:200,data:data});
                else {
                    console.log(err);
                    resolve({code:500,msg:err});
                }
            });
        });
    }

};
